Skip to content

Conversation

@ItsMilos
Copy link
Contributor

Transforms ISIL into higher level with stack analysis, ssa form, simplification, etc. and then translates that into CIL.
The decompiled C# is pretty messy right now (dnSpy just refuses to decompile it, but ILSpy works) but most of the times it's possible to at least see what methods do.

I'm MrUser127 btw, i changed my name, and that stuff in that previous decompiler pr should now be fixed, and now i actually have motivation to work on this if something needs to be changed

@coveralls
Copy link

coveralls commented Aug 20, 2025

Pull Request Test Coverage Report for Build 19646943404

Details

  • 100 of 1854 (5.39%) changed or added relevant lines in 29 files are covered.
  • 41 unchanged lines in 6 files lost coverage.
  • Overall coverage decreased (-4.0%) to 30.3%

Changes Missing Coverage Covered Lines Changed/Added Lines %
Cpp2IL.Core/ISIL/StackOffset.cs 1 2 50.0%
Cpp2IL.Core/InstructionSets/Arm64InstructionSet.cs 0 1 0.0%
Cpp2IL.Core/InstructionSets/ArmV7InstructionSet.cs 0 1 0.0%
Cpp2IL.Core/InstructionSets/WasmInstructionSet.cs 0 1 0.0%
Cpp2IL.Core/DecompilerException.cs 0 3 0.0%
Cpp2IL.Core/OutputFormats/AsmResolverDllOutputFormat.cs 0 3 0.0%
Cpp2IL.Core/ProcessingLayers/CallAnalysisProcessingLayer.cs 0 4 0.0%
Cpp2IL.Core/ISIL/FieldReference.cs 0 5 0.0%
Cpp2IL.Core/ISIL/LocalVariable.cs 0 5 0.0%
Cpp2IL.Core/ProcessingLayers/NativeMethodDetectionProcessingLayer.cs 0 5 0.0%
Files with Coverage Reduction New Missed Lines %
Cpp2IL.Core/Graphs/ISILControlFlowGraph.cs 1 38.29%
Cpp2IL.Core/Extensions/MiscExtensions.cs 2 5.23%
Cpp2IL.Core/Model/Contexts/MethodAnalysisContext.cs 2 53.9%
Cpp2IL.Core/OutputFormats/AsmResolverDllOutputFormatIlRecovery.cs 3 0.79%
Cpp2IL.Core/InstructionSets/NewArmV8InstructionSet.cs 12 0.0%
Cpp2IL.Core/InstructionSets/X86InstructionSet.cs 21 0.13%
Totals Coverage Status
Change from base Build 18333364266: -4.0%
Covered Lines: 4084
Relevant Lines: 11864

💛 - Coveralls

@ds5678 ds5678 mentioned this pull request Aug 21, 2025
@SamboyCoding
Copy link
Owner

SamboyCoding commented Aug 24, 2025

So I attempted to review this but I think you have a massive number of thread safety issues. I got thousands of exceptions - some concurrent modification, some sequence contained no matching element, and various others - while analyzing, and then when it finished and tried to write the assemblies, I got an AggregateException with 2588 inner exceptions, most of which were either MemberNotImportedException, or IL_[offset] references an offset that is not present in the method body.

From a quick look, you're using one _ilGenerator in AsmResolverDllOutputFormatIlRecovery.FillMethodBody, but that method is called in parallel so you've got multiple calls to it at once, which it can't handle - e.g. it maintains an _importer field which is being overwritten constantly, so methods are being imported into the wrong modules. Seems you'll have to pass that through.

The control flow graphs I did get (I uncommented the line which wrote them, so that I could evaluate the decompilation in at least some way) looked promising, though they were much more complex and I didn't have much time to familiarise myself with the string representations you were using.

For reference, I was attempting to decompile AUDICA.

@ItsMilos
Copy link
Contributor Author

I forgot to try this in non debug mode so stuff was not actually parallel, should be fixed now

@hendev1
Copy link

hendev1 commented Dec 3, 2025

When i try to use the dll_il_recovery option for the output im getting many errors. Is this maybe a common error or can someone help me? I tried different versions of my game with different unity versions. Both smaller than 2022 and one 6000.
Log:
`E:\X>Cpp2IL.exe --game-path " x1.0.0 Unity 2018.4.6f1.apk" --output-as dll_il_recovery
===Cpp2IL by Samboy063===
A Tool to Reverse Unity's "il2cpp" Build Process.
Version 2022.1.0-pr-481.1408+4d8d062.4d8d06293af897be820a2b80363a64f98d473d27

[Info] [Program] Running on Win32NT
[Info] [Plugins] Loading plugins from E:\X\Plugins...
[Info] [Plugins] Using Plugin: Cpp2IL Built-In
[Info] [APK] Attempting to extract required files from APK x1.0.0 Unity 2018.4.6f1.apk
[Info] [APK] Extracting APK/lib/arm64-v8a/libil2cpp.so to C:\Users\AppData\Local\Temp\tmpf2kola.tmp
[Info] [APK] Extracting APK/assets/bin/Data/Managed/Metadata/global-metadata.dat to C:\Users\AppData\Local\Temp\tmpbuzvk5.tmp
[Info] [APK] Reading globalgamemanagers to determine unity version...
[Info] [APK] Determined game's unity version to be 2018.4.6f1
[Info] [Library] Initializing Metadata...
[Info] [Library] Using actual IL2CPP Metadata version 24,1
[Info] [Library] Initialized Metadata in 455ms
[Info] [Library] Using binary type ELF (from LibCpp2IL)
[Info] [Library] Searching Binary for Required Data...
[Info] [Library] Got Binary codereg: 0x304D0F0, metareg: 0x304D160 in 588ms.
[Info] [Library] Initializing Binary...
[Info] [Library] Initialized Binary in 108ms
[Info] [Library] Mapping Globals...OK (30ms)
[Info] [Library] Mapping pointers to Il2CppMethodDefinitions...Processed 59927 OK (68ms)
[Info] [Program] Creating application model...
[Info] [Program] Application model created in 3742,4124ms
[Info] [Program] Pre-processing processing layers...
[Info] [Program] Invoking processing layers...
[Info] [Program] Outputting as DLL files with IL Recovery to E:\X\cpp2il_out...
[Fail] [Program] Decompiling UnityEngine.Purchasing.MiniJSON.Json+Parser::IsWordBreak failed: System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection. (Parameter 'index')
at System.Collections.Generic.List1.get_Item(Int32 index) at Cpp2IL.Core.Analysis.LocalVariables.PropagateFromCallParameters(MethodAnalysisContext method) in /_/Cpp2IL.Core/Analysis/LocalVariables.cs:line 249 at Cpp2IL.Core.Analysis.LocalVariables.PropagateTypes(MethodAnalysisContext method) in /_/Cpp2IL.Core/Analysis/LocalVariables.cs:line 196 at Cpp2IL.Core.Model.Contexts.MethodAnalysisContext.Analyze() in /_/Cpp2IL.Core/Model/Contexts/MethodAnalysisContext.cs:line 321 at Cpp2IL.Core.OutputFormats.AsmResolverDllOutputFormatIlRecovery.FillMethodBody(MethodDefinition methodDefinition, MethodAnalysisContext methodContext) in /_/Cpp2IL.Core/OutputFormats/AsmResolverDllOutputFormatIlRecovery.cs:line 53 [Fail] [Program] Decompiling UnityEngine.Purchasing.MiniJSON.Json+Parser::.ctor failed: System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection. (Parameter 'index') at System.Collections.Generic.List1.get_Item(Int32 index)
at Cpp2IL.Core.Analysis.LocalVariables.CreateAll(MethodAnalysisContext method) in //Cpp2IL.Core/Analysis/LocalVariables.cs:line 85
at Cpp2IL.Core.Model.Contexts.MethodAnalysisContext.Analyze() in /
/Cpp2IL.Core/Model/Contexts/MethodAnalysisContext.cs:line 314
at Cpp2IL.Core.OutputFormats.AsmResolverDllOutputFormatIlRecovery.FillMethodBody(MethodDefinition methodDefinition, MethodAnalysisContext methodContext) in //Cpp2IL.Core/OutputFormats/AsmResolverDllOutputFormatIlRecovery.cs:line 53
[Fail] [Program] Decompiling UnityEngine.Purchasing.MiniJSON.Json+Parser::Parse failed: System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection. (Parameter 'index')
at System.Collections.Generic.List1.get_Item(Int32 index) at Cpp2IL.Core.Analysis.LocalVariables.PropagateFromCallParameters(MethodAnalysisContext method) in /_/Cpp2IL.Core/Analysis/LocalVariables.cs:line 249 at Cpp2IL.Core.Analysis.LocalVariables.PropagateTypes(MethodAnalysisContext method) in /_/Cpp2IL.Core/Analysis/LocalVariables.cs:line 196 at Cpp2IL.Core.Model.Contexts.MethodAnalysisContext.Analyze() in /_/Cpp2IL.Core/Model/Contexts/MethodAnalysisContext.cs:line 321 at Cpp2IL.Core.OutputFormats.AsmResolverDllOutputFormatIlRecovery.FillMethodBody(MethodDefinition methodDefinition, MethodAnalysisContext methodContext) in /_/Cpp2IL.Core/OutputFormats/AsmResolverDllOutputFormatIlRecovery.cs:line 53 [Fail] [Program] Decompiling UnityEngine.Purchasing.MiniJSON.Json+Parser::Dispose failed: System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection. (Parameter 'index') at System.Collections.Generic.List1.get_Item(Int32 index)
at Cpp2IL.Core.Analysis.LocalVariables.CreateAll(MethodAnalysisContext method) in /
/Cpp2IL.Core/Analysis/LocalVariables.cs:line 85
at Cpp2IL.Core.Model.Contexts.MethodAnalysisContext.Analyze() in //Cpp2IL.Core/Model/Contexts/MethodAnalysisContext.cs:line 314
at Cpp2IL.Core.OutputFormats.AsmResolverDllOutputFormatIlRecovery.FillMethodBody(MethodDefinition methodDefinition, MethodAnalysisContext methodContext) in /
/Cpp2IL.Core/OutputFormats/AsmResolverDllOutputFormatIlRecovery.cs:line 53
[Fail] [Program] Decompiling UnityEngine.Purchasing.MiniJSON.Json+Parser::ParseObject failed: System.Collections.Generic.KeyNotFoundException: The given key 'Exit 1

' was not present in the dictionary.
at System.Collections.Generic.Dictionary`2.get_Item(TKey key)
at Cpp2IL.Core.Analysis.StackAnalyzer.Analyze(MethodAnalysisContext method) in //Cpp2IL.Core/Analysis/StackAnalyzer.cs:line 38
at Cpp2IL.Core.Model.Contexts.MethodAnalysisContext.Analyze() in /
/Cpp2IL.Core/Model/Contexts/MethodAnalysisContext.cs:line 310
at Cpp2IL.Core.OutputFormats.AsmResolverDllOutputFormatIlRecovery.FillMethodBody(MethodDefinition methodDefinition, MethodAnalysisContext methodContext) in /_/Cpp2IL.Core/OutputFormats/AsmResolverDllOutputFormatIlRecovery.cs:line 53
[Fail] [Program] Decompiling UnityEngine.Purchasing.MiniJSON.Json+Parser::ParseArray failed: System.Collections.Generic.KeyNotFoundException: The given key 'Exit 1

' was not present in the dictionary.
at System.Collections.Generic.Dictionary2.get_Item(TKey key) at Cpp2IL.Core.Analysis.StackAnalyzer.Analyze(MethodAnalysisContext method) in /_/Cpp2IL.Core/Analysis/StackAnalyzer.cs:line 38 at Cpp2IL.Core.Model.Contexts.MethodAnalysisContext.Analyze() in /_/Cpp2IL.Core/Model/Contexts/MethodAnalysisContext.cs:line 310 at Cpp2IL.Core.OutputFormats.AsmResolverDllOutputFormatIlRecovery.FillMethodBody(MethodDefinition methodDefinition, MethodAnalysisContext methodContext) in /_/Cpp2IL.Core/OutputFormats/AsmResolverDllOutputFormatIlRecovery.cs:line 53 [Fail] [Program] Decompiling UnityEngine.Purchasing.MiniJSON.Json+Parser::ParseValue failed: System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection. (Parameter 'index') at System.Collections.Generic.List1.get_Item(Int32 index)
at Cpp2IL.Core.Analysis.LocalVariables.CreateAll(MethodAnalysisContext method) in //Cpp2IL.Core/Analysis/LocalVariables.cs:line 85
at Cpp2IL.Core.Model.Contexts.MethodAnalysisContext.Analyze() in /
/Cpp2IL.Core/Model/Contexts/MethodAnalysisContext.cs:line 314
at Cpp2IL.Core.OutputFormats.AsmResolverDllOutputFormatIlRecovery.FillMethodBody(MethodDefinition methodDefinition, MethodAnalysisContext methodContext) in //Cpp2IL.Core/OutputFormats/AsmResolverDllOutputFormatIlRecovery.cs:line 53
[Fail] [Program] Decompiling UnityEngine.Purchasing.MiniJSON.Json+Parser::ParseByToken failed: System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection. (Parameter 'index')
at System.Collections.Generic.List1.get_Item(Int32 index) at Cpp2IL.Core.Analysis.LocalVariables.CreateAll(MethodAnalysisContext method) in /_/Cpp2IL.Core/Analysis/LocalVariables.cs:line 85 at Cpp2IL.Core.Model.Contexts.MethodAnalysisContext.Analyze() in /_/Cpp2IL.Core/Model/Contexts/MethodAnalysisContext.cs:line 314 at Cpp2IL.Core.OutputFormats.AsmResolverDllOutputFormatIlRecovery.FillMethodBody(MethodDefinition methodDefinition, MethodAnalysisContext methodContext) in /_/Cpp2IL.Core/OutputFormats/AsmResolverDllOutputFormatIlRecovery.cs:line 53 [Fail] [Program] Decompiling UnityEngine.Purchasing.MiniJSON.Json+Parser::ParseString failed: System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection. (Parameter 'index') at System.Collections.Generic.List1.get_Item(Int32 index)
at Cpp2IL.Core.Analysis.LocalVariables.CreateAll(MethodAnalysisContext method) in /
/Cpp2IL.Core/Analysis/LocalVariables.cs:line 85
at Cpp2IL.Core.Model.Contexts.MethodAnalysisContext.Analyze() in //Cpp2IL.Core/Model/Contexts/MethodAnalysisContext.cs:line 314
at Cpp2IL.Core.OutputFormats.AsmResolverDllOutputFormatIlRecovery.FillMethodBody(MethodDefinition methodDefinition, MethodAnalysisContext methodContext) in /
/Cpp2IL.Core/OutputFormats/AsmResolverDllOutputFormatIlRecovery.cs:line 53
[Fail] [Program] Decompiling UnityEngine.Purchasing.MiniJSON.Json+Parser::ParseNumber failed: System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection. (Parameter 'index')
at System.Collections.Generic.List1.get_Item(Int32 index) at Cpp2IL.Core.Analysis.LocalVariables.CreateAll(MethodAnalysisContext method) in /_/Cpp2IL.Core/Analysis/LocalVariables.cs:line 85 at Cpp2IL.Core.Model.Contexts.MethodAnalysisContext.Analyze() in /_/Cpp2IL.Core/Model/Contexts/MethodAnalysisContext.cs:line 314 at Cpp2IL.Core.OutputFormats.AsmResolverDllOutputFormatIlRecovery.FillMethodBody(MethodDefinition methodDefinition, MethodAnalysisContext methodContext) in /_/Cpp2IL.Core/OutputFormats/AsmResolverDllOutputFormatIlRecovery.cs:line 53 [Fail] [Program] Decompiling UnityEngine.Purchasing.MiniJSON.Json+Parser::EatWhitespace failed: System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection. (Parameter 'index') at System.Collections.Generic.List1.get_Item(Int32 index)
at Cpp2IL.Core.Analysis.LocalVariables.CreateAll(MethodAnalysisContext method) in //Cpp2IL.Core/Analysis/LocalVariables.cs:line 85
at Cpp2IL.Core.Model.Contexts.MethodAnalysisContext.Analyze() in /
/Cpp2IL.Core/Model/Contexts/MethodAnalysisContext.cs:line 314
at Cpp2IL.Core.OutputFormats.AsmResolverDllOutputFormatIlRecovery.FillMethodBody(MethodDefinition methodDefinition, MethodAnalysisContext methodContext) in //Cpp2IL.Core/OutputFormats/AsmResolverDllOutputFormatIlRecovery.cs:line 53
[Fail] [Program] Decompiling UnityEngine.Purchasing.MiniJSON.Json+Parser::get_PeekChar failed: System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection. (Parameter 'index')
at System.Collections.Generic.List1.get_Item(Int32 index) at Cpp2IL.Core.Analysis.LocalVariables.CreateAll(MethodAnalysisContext method) in /_/Cpp2IL.Core/Analysis/LocalVariables.cs:line 85 at Cpp2IL.Core.Model.Contexts.MethodAnalysisContext.Analyze() in /_/Cpp2IL.Core/Model/Contexts/MethodAnalysisContext.cs:line 314 at Cpp2IL.Core.OutputFormats.AsmResolverDllOutputFormatIlRecovery.FillMethodBody(MethodDefinition methodDefinition, MethodAnalysisContext methodContext) in /_/Cpp2IL.Core/OutputFormats/AsmResolverDllOutputFormatIlRecovery.cs:line 53 [Fail] [Program] Decompiling UnityEngine.Purchasing.MiniJSON.Json+Parser::get_NextChar failed: System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection. (Parameter 'index') at System.Collections.Generic.List1.get_Item(Int32 index)
at Cpp2IL.Core.Analysis.LocalVariables.CreateAll(MethodAnalysisContext method) in /
/Cpp2IL.Core/Analysis/LocalVariables.cs:line 85
at Cpp2IL.Core.Model.Contexts.MethodAnalysisContext.Analyze() in //Cpp2IL.Core/Model/Contexts/MethodAnalysisContext.cs:line 314
at Cpp2IL.Core.OutputFormats.AsmResolverDllOutputFormatIlRecovery.FillMethodBody(MethodDefinition methodDefinition, MethodAnalysisContext methodContext) in /
/Cpp2IL.Core/OutputFormats/AsmResolverDllOutputFormatIlRecovery.cs:line 53
[Fail] [Program] Decompiling UnityEngine.Purchasing.MiniJSON.Json+Parser::get_NextWord failed: System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection. (Parameter 'index')
at System.Collections.Generic.List1.get_Item(Int32 index) at Cpp2IL.Core.Analysis.LocalVariables.CreateAll(MethodAnalysisContext method) in /_/Cpp2IL.Core/Analysis/LocalVariables.cs:line 85 at Cpp2IL.Core.Model.Contexts.MethodAnalysisContext.Analyze() in /_/Cpp2IL.Core/Model/Contexts/MethodAnalysisContext.cs:line 314 at Cpp2IL.Core.OutputFormats.AsmResolverDllOutputFormatIlRecovery.FillMethodBody(MethodDefinition methodDefinition, MethodAnalysisContext methodContext) in /_/Cpp2IL.Core/OutputFormats/AsmResolverDllOutputFormatIlRecovery.cs:line 53 [Fail] [Program] Decompiling UnityEngine.Purchasing.MiniJSON.Json+Parser::get_NextToken failed: System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection. (Parameter 'index') at System.Collections.Generic.List1.get_Item(Int32 index)
at Cpp2IL.Core.Analysis.LocalVariables.CreateAll(MethodAnalysisContext method) in //Cpp2IL.Core/Analysis/LocalVariables.cs:line 85
at Cpp2IL.Core.Model.Contexts.MethodAnalysisContext.Analyze() in /
/Cpp2IL.Core/Model/Contexts/MethodAnalysisContext.cs:line 314
at Cpp2IL.Core.OutputFormats.AsmResolverDllOutputFormatIlRecovery.FillMethodBody(MethodDefinition methodDefinition, MethodAnalysisContext methodContext) in //Cpp2IL.Core/OutputFormats/AsmResolverDllOutputFormatIlRecovery.cs:line 53
[Fail] [Program] Decompiling UnityEngine.Purchasing.MiniJSON.Json+Serializer::.ctor failed: System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection. (Parameter 'index')
at System.Collections.Generic.List1.get_Item(Int32 index) at Cpp2IL.Core.Analysis.LocalVariables.CreateAll(MethodAnalysisContext method) in /_/Cpp2IL.Core/Analysis/LocalVariables.cs:line 85 at Cpp2IL.Core.Model.Contexts.MethodAnalysisContext.Analyze() in /_/Cpp2IL.Core/Model/Contexts/MethodAnalysisContext.cs:line 314 at Cpp2IL.Core.OutputFormats.AsmResolverDllOutputFormatIlRecovery.FillMethodBody(MethodDefinition methodDefinition, MethodAnalysisContext methodContext) in /_/Cpp2IL.Core/OutputFormats/AsmResolverDllOutputFormatIlRecovery.cs:line 53 [Fail] [Program] Decompiling UnityEngine.Purchasing.MiniJSON.Json+Serializer::Serialize failed: System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection. (Parameter 'index') at System.Collections.Generic.List1.get_Item(Int32 index)
at Cpp2IL.Core.Analysis.LocalVariables.PropagateFromCallParameters(MethodAnalysisContext method) in /
/Cpp2IL.Core/Analysis/LocalVariables.cs:line 249
at Cpp2IL.Core.Analysis.LocalVariables.PropagateTypes(MethodAnalysisContext method) in //Cpp2IL.Core/Analysis/LocalVariables.cs:line 196
at Cpp2IL.Core.Model.Contexts.MethodAnalysisContext.Analyze() in /
/Cpp2IL.Core/Model/Contexts/MethodAnalysisContext.cs:line 321
at Cpp2IL.Core.OutputFormats.AsmResolverDllOutputFormatIlRecovery.FillMethodBody(MethodDefinition methodDefinition, MethodAnalysisContext methodContext) in //Cpp2IL.Core/OutputFormats/AsmResolverDllOutputFormatIlRecovery.cs:line 53
[Fail] [Program] Decompiling UnityEngine.Purchasing.MiniJSON.Json+Serializer::SerializeValue failed: System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection. (Parameter 'index')
at System.Collections.Generic.List1.get_Item(Int32 index) at Cpp2IL.Core.Analysis.LocalVariables.CreateAll(MethodAnalysisContext method) in /_/Cpp2IL.Core/Analysis/LocalVariables.cs:line 85 at Cpp2IL.Core.Model.Contexts.MethodAnalysisContext.Analyze() in /_/Cpp2IL.Core/Model/Contexts/MethodAnalysisContext.cs:line 314 at Cpp2IL.Core.OutputFormats.AsmResolverDllOutputFormatIlRecovery.FillMethodBody(MethodDefinition methodDefinition, MethodAnalysisContext methodContext) in /_/Cpp2IL.Core/OutputFormats/AsmResolverDllOutputFormatIlRecovery.cs:line 53 [Fail] [Program] Decompiling UnityEngine.Purchasing.MiniJSON.Json+Serializer::SerializeObject failed: System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection. (Parameter 'index') at System.Collections.Generic.List1.get_Item(Int32 index)
at Cpp2IL.Core.Analysis.LocalVariables.CreateAll(MethodAnalysisContext method) in /
/Cpp2IL.Core/Analysis/LocalVariables.cs:line 85
at Cpp2IL.Core.Model.Contexts.MethodAnalysisContext.Analyze() in //Cpp2IL.Core/Model/Contexts/MethodAnalysisContext.cs:line 314
at Cpp2IL.Core.OutputFormats.AsmResolverDllOutputFormatIlRecovery.FillMethodBody(MethodDefinition methodDefinition, MethodAnalysisContext methodContext) in /
/Cpp2IL.Core/OutputFormats/AsmResolverDllOutputFormatIlRecovery.cs:line 53
[Fail] [Program] Decompiling UnityEngine.Purchasing.MiniJSON.Json+Serializer::SerializeArray failed: System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection. (Parameter 'index')
at System.Collections.Generic.List`1.get_Item(Int32 index)
at Cpp2IL.Core.Analysis.LocalVariables.CreateAll(MethodAnalysisContext method) in //Cpp2IL.Core/Analysis/LocalVariables.cs:line 85
at Cpp2IL.Core.Model.Contexts.MethodAnalysisContext.Analyze() in /
/Cpp2IL.Core/Model/Contexts/MethodAnalysisContext.cs:line 314
at Cpp2IL.Core.OutputFormats.AsmResolverDllOutputFormatIlRecovery.FillMethodBody(MethodDefinition methodDefinition, MethodAnalysisContext methodContext) in /_/Cpp2IL.Core/OutputFormats/AsmResolverDllOutputFormatIlRecovery.cs:line 53
[Fail] [Program] Decompiling UnityEngine.Purchasing.MiniJSON.Json+Serializer::SerializeString failed: System.Collections.Generic.KeyNotFoundException: The given key 'Exit 1

' was not present in the dictionary.
at System.Collections.Generic.Dictionary2.get_Item(TKey key) at Cpp2IL.Core.Analysis.StackAnalyzer.Analyze(MethodAnalysisContext method) in /_/Cpp2IL.Core/Analysis/StackAnalyzer.cs:line 38 at Cpp2IL.Core.Model.Contexts.MethodAnalysisContext.Analyze() in /_/Cpp2IL.Core/Model/Contexts/MethodAnalysisContext.cs:line 310 at Cpp2IL.Core.OutputFormats.AsmResolverDllOutputFormatIlRecovery.FillMethodBody(MethodDefinition methodDefinition, MethodAnalysisContext methodContext) in /_/Cpp2IL.Core/OutputFormats/AsmResolverDllOutputFormatIlRecovery.cs:line 53 [Fail] [Program] Decompiling UnityEngine.Purchasing.MiniJSON.Json+Serializer::SerializeOther failed: System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection. (Parameter 'index') at System.Collections.Generic.List1.get_Item(Int32 index)
at Cpp2IL.Core.Analysis.LocalVariables.CreateAll(MethodAnalysisContext method) in //Cpp2IL.Core/Analysis/LocalVariables.cs:line 85
at Cpp2IL.Core.Model.Contexts.MethodAnalysisContext.Analyze() in /
/Cpp2IL.Core/Model/Contexts/MethodAnalysisContext.cs:line 314
at Cpp2IL.Core.OutputFormats.AsmResolverDllOutputFormatIlRecovery.FillMethodBody(MethodDefinition methodDefinition, MethodAnalysisContext methodContext) in /_/Cpp2IL.Core/OutputFormats/AsmResolverDllOutputFormatIlRecovery.cs:line 53
[Fail] [Program] Decompiling UnityEngine.Purchasing.MiniJSON.MiniJsonExtensions::toJson failed: System.Collections.Generic.KeyNotFoundException: The given key 'Exit 1

' was not present in the dictionary.
at System.Collections.Generic.Dictionary2.get_Item(TKey key) at Cpp2IL.Core.Analysis.StackAnalyzer.Analyze(MethodAnalysisContext method) in /_/Cpp2IL.Core/Analysis/StackAnalyzer.cs:line 38 at Cpp2IL.Core.Model.Contexts.MethodAnalysisContext.Analyze() in /_/Cpp2IL.Core/Model/Contexts/MethodAnalysisContext.cs:line 310 at Cpp2IL.Core.OutputFormats.AsmResolverDllOutputFormatIlRecovery.FillMethodBody(MethodDefinition methodDefinition, MethodAnalysisContext methodContext) in /_/Cpp2IL.Core/OutputFormats/AsmResolverDllOutputFormatIlRecovery.cs:line 53 Unhandled exception. System.AggregateException: One or more errors occurred. (Failed to process type Locale (module mscorlib.dll, declaring type ) in mscorlib) ---> System.Exception: Failed to process type Locale (module mscorlib.dll, declaring type ) in mscorlib ---> System.InvalidOperationException: Sequence contains no matching element at System.Linq.ThrowHelper.ThrowNoMatchException() at System.Linq.Enumerable.First[TSource](IEnumerable1 source, Func2 predicate) at Cpp2IL.Core.OutputFormats.AsmResolverDllOutputFormatIlRecovery.FindExceptionConstructor(MethodDefinition method) in /_/Cpp2IL.Core/OutputFormats/AsmResolverDllOutputFormatIlRecovery.cs:line 80 at Cpp2IL.Core.OutputFormats.AsmResolverDllOutputFormatIlRecovery.FillMethodBody(MethodDefinition methodDefinition, MethodAnalysisContext methodContext) in /_/Cpp2IL.Core/OutputFormats/AsmResolverDllOutputFormatIlRecovery.cs:line 28 at Cpp2IL.Core.OutputFormats.AsmResolverDllOutputFormat.FillMethodBodies(AssemblyAnalysisContext context) in /_/Cpp2IL.Core/OutputFormats/AsmResolverDllOutputFormat.cs:line 143 --- End of inner exception stack trace --- at Cpp2IL.Core.OutputFormats.AsmResolverDllOutputFormat.FillMethodBodies(AssemblyAnalysisContext context) in /_/Cpp2IL.Core/OutputFormats/AsmResolverDllOutputFormat.cs:line 150 at System.Linq.Parallel.PartitionedDataSource1.ListContiguousIndexRangeEnumerator.MoveNext(T& currentElement, Int32& currentKey)
at System.Linq.Parallel.StopAndGoSpoolingTask2.SpoolingWork() at System.Linq.Parallel.SpoolingTaskBase.Work() at System.Linq.Parallel.QueryTask.BaseWork(Object unused) at System.Linq.Parallel.QueryTask.<>c.<.cctor>b__10_0(Object o) at System.Threading.Tasks.Task.InnerInvoke() at System.Threading.Tasks.Task.<>c.<.cctor>b__292_0(Object obj) at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state) --- End of stack trace from previous location --- at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot, Thread threadPoolThread) --- End of inner exception stack trace --- at System.Linq.Parallel.QueryTaskGroupState.QueryEnd(Boolean userInitiatedDispose) at System.Linq.Parallel.SpoolingTask.SpoolStopAndGo[TInputOutput,TIgnoreKey](QueryTaskGroupState groupState, PartitionedStream2 partitions, SynchronousChannel1[] channels, TaskScheduler taskScheduler) at System.Linq.Parallel.DefaultMergeHelper2.System.Linq.Parallel.IMergeHelper.Execute()
at System.Linq.Parallel.MergeExecutor1.Execute() at System.Linq.Parallel.MergeExecutor1.Execute[TKey](PartitionedStream2 partitions, Boolean ignoreOutput, ParallelMergeOptions options, TaskScheduler taskScheduler, Boolean isOrdered, CancellationState cancellationState, Int32 queryId) at System.Linq.Parallel.PartitionedStreamMerger1.Receive[TKey](PartitionedStream2 partitionedStream) at System.Linq.Parallel.UnaryQueryOperator2.UnaryQueryOperatorResults.GivePartitionedStream(IPartitionedStreamRecipient1 recipient) at System.Linq.Parallel.QueryOperator1.GetOpenedEnumerator(Nullable1 mergeOptions, Boolean suppressOrder, Boolean forEffect, QuerySettings querySettings) at System.Linq.Parallel.QueryOpeningEnumerator1.OpenQuery()
at System.Linq.Parallel.QueryOpeningEnumerator1.MoveNext() at System.Linq.ParallelEnumerable.ToList[TSource](ParallelQuery1 source)
at Cpp2IL.Core.Utils.MiscUtils.ExecuteParallel[T](IEnumerable1 enumerable, Action1 what) in //Cpp2IL.Core/Utils/MiscUtils.cs:line 257
at Cpp2IL.Core.OutputFormats.AsmResolverDllOutputFormat.BuildAssemblies(ApplicationAnalysisContext context) in /
/Cpp2IL.Core/OutputFormats/AsmResolverDllOutputFormat.cs:line 117
at Cpp2IL.Core.OutputFormats.AsmResolverDllOutputFormat.DoOutput(ApplicationAnalysisContext context, String outputRoot) in /_/Cpp2IL.Core/OutputFormats/AsmResolverDllOutputFormat.cs:line 29
at Cpp2IL.Program.MainWithArgs(Cpp2IlRuntimeArgs runtimeArgs) in /home/runner/work/Cpp2IL/Cpp2IL/Cpp2IL/Program.cs:line 705
at Cpp2IL.Program.Main(String[] args) in /home/runner/work/Cpp2IL/Cpp2IL/Cpp2IL/Program.cs:line 617
`

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants